﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ConversaoAlimentar.Model;

namespace ConversaoAlimentar.Negocio {
  class DietaAlimentarNegocio {
    private List<ControleEvolutivo> qntAnimais = new List<ControleEvolutivo>();
    public float MediaPeso() {
      float totalAnimais = 0; float totalPeso = 0;
      foreach (ControleEvolutivo x in qntAnimais) {
        totalAnimais = qntAnimais.Count();
        totalPeso += x.PesoAnimal;
      }
      return (totalPeso / totalAnimais);
    }
    
    private Lote lote;
    public DietaAlimentarNegocio(Lote lote) {
      this.lote = lote;
    }

    public float CalcularDietaMS() {
      float dieta=0;
      if (MediaPeso() < 260) {
        dieta = (float)(lote.Animais.Count() * 7.67);
      } else if (MediaPeso() >= 260 && MediaPeso() < 320) {
        dieta = (float)(lote.Animais.Count * 9.02);
      } else if(MediaPeso() >= 320 && MediaPeso() < 380){
        dieta = (float)(lote.Animais.Count * 11.38);
      } else if (MediaPeso() >= 380 && MediaPeso() < 450) {
        dieta = (float)(lote.Animais.Count * 13.78);
      } else {
        dieta =  (float)(lote.Animais.Count * 15.26);
      }
      return dieta;
    }

    DietaAlimentar AlimentosMS = new DietaAlimentar();
    public float CalcularSilagem() {
      return CalcularDietaMS() * ((float)AlimentosMS.Silagem / 100);
    }

    public float CalcularFareloTrigo() {
      return CalcularDietaMS() * ((float)AlimentosMS.FareloTrigo / 100);
    }

    public float CalcularFareloSoja() {
      return CalcularDietaMS() * ((float)AlimentosMS.FareloSoja / 100);
    }

    public float CalcularMilho() {
      return CalcularDietaMS() * ((float)AlimentosMS.Milho / 100);
    }

    public float CalcularMineralConcentrado() {
      return CalcularDietaMS() * ((float)AlimentosMS.Mineral / 100);
    }

    public float CalcularConsumoTotal() {
      return (CalcularSilagem() + CalcularFareloTrigo() + CalcularMilho() +
             CalcularFareloSoja() + CalcularMineralConcentrado());
    }

    public float CalcularConsumoReal() {
      ControleConsumo CC = new ControleConsumo();
      return CalcularConsumoTotal() - CC.SobraAlimentos;
    }

  }
}